package com.cskaoyan.javase.controlflow.selective3.ifs.compare3;

/**
 * @description: 比较双分支if和三目运算符
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 比较双分支if和三目运算符
 *
 * - 在某些情况下，三目运算符和双分支if可以替换，两者的语义也很相似
 * - 但是三目运算符远不如双分支if灵活
 *   - 三目运算符，本质上是一个运算表达式，是有运算结果的
 *   - if双分支结构就不是运算表达式，可以在里面写语句
 * - 怎么选择？
 *   - 严格来说，三目运算符的执行效率高于if双分支结构，并且三目运算符更简洁，更直观明了
 *   - 建议能够选择三目运算符的场景，选择三目运算符
 *
 *   但是开发中，这种场景比较少，所以90%以上的情况，大家还是会用if双分支
 *
 */
public class Demo {
    public static void main(String[] args) {
        //求两个数的最大值
        int a = 10;
        int b = 20;
        int max = (a > b) ? a : b; //三目运算符本质上也是选择
        if (a > b) {
            max = a;
        } else {
            max = b;
        }
        //三目运算符有限制，必须有结果，有接收
        if (a > b) {
            System.out.println("a是最大值:" + a);
        } else {
            System.out.println("b是最大值:" + b);
        }

    }
}
